
// function coffee(callback){
//     console.log('做出一杯咖啡')
//     callback()
// }
// function milk(){
//     console.log('加牛奶')
// }
// function sweet(){
//     console.log('加糖')
// }
// coffee(milk)
// coffee(sweet)


function memorizeSum(fn){
    // ... 缓存，保留参数 （预置）
    const cache = new Map();
    return function(...args){
      const key =  JSON.stringify(args)
      if(cache.has(key)){
        // 获取缓存的结果
        console.log('缓存后的结果')
        return cache.get(key);
      }
      const result = fn(...args)
      cache.set(key,result);
      return result
    }
}


function sum(a,b){
    return a+b
}
const newMemorizeSum = memorizeSum(sum)
console.log(newMemorizeSum(1,2));
console.log(newMemorizeSum(1,2));